/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ui;

import utils.SpringUtilities;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import modelo.ModeloGrafica;
import modelo.ModeloGraficaListener;

/**
 *
 * @author juanan
 */
public class PanelGrafico extends JPanel implements ModeloGraficaListener {

    private JPanel datos;
    private Grafica grafica;
    private ModeloGrafica m;
    
    //JTEXTFIELD correspondientes a los datos de la grafica 
    JTextField tfAlimentoInicial;
    JTextField tfDiaAlimentoMax;
    JTextField tfAlimentoMax;
    JTextField tfAlimentoFinal;
    
    //JLABEL correspondientes a los JTEXTFIELD de la grafica
    JLabel lbAlimentoInicial;
    JLabel lbDiaAlimentoMax;
    JLabel lbAlimentoMax;
    JLabel lbAlimentoFinal;
    
    int relacion=10;

    public PanelGrafico(ModeloGrafica m) {
        this.m = m;
        this.setLayout(new BorderLayout());
        datos = new JPanel(new SpringLayout());
        grafica = new Grafica(m);
        crearPanelDatos();
        this.add(datos, BorderLayout.WEST);
        this.add(grafica, BorderLayout.CENTER);
        this.setPreferredSize(new Dimension(700, 400));

        initListener();
    }

    private void initListener() {
        m.addInterfazListener(this);
    }

    private void crearPanelDatos() {
        Dimension dimTextfield = new Dimension(150, 20);
        tfAlimentoInicial = new JTextField("" + getModel().getAlimentoInicial());
        tfAlimentoInicial.setMaximumSize(dimTextfield);
        tfAlimentoInicial.setPreferredSize(dimTextfield);

        tfDiaAlimentoMax = new JTextField("" + getModel().getDiaAlimentoMax());
        tfDiaAlimentoMax.setMaximumSize(dimTextfield);
        tfDiaAlimentoMax.setPreferredSize(dimTextfield);
        tfAlimentoMax = new JTextField("" + getModel().getAlimentoMax());
        tfAlimentoMax.setMaximumSize(dimTextfield);
        tfAlimentoMax.setPreferredSize(dimTextfield);
        tfAlimentoFinal = new JTextField("" + getModel().getAlimentoFinal());
        tfAlimentoFinal.setMaximumSize(dimTextfield);
        tfAlimentoFinal.setPreferredSize(dimTextfield);
        lbAlimentoInicial = new JLabel("Alimento Inicial");
        lbDiaAlimentoMax = new JLabel("Día máximo");
        lbAlimentoMax = new JLabel("Alimento Máximo");
        lbAlimentoFinal = new JLabel("Alimento Final");

        datos.add(lbAlimentoInicial);
        datos.add(tfAlimentoInicial);
        datos.add(lbDiaAlimentoMax);
        datos.add(tfDiaAlimentoMax);
        datos.add(lbAlimentoMax);
        datos.add(tfAlimentoMax);
        datos.add(lbAlimentoFinal);
        datos.add(tfAlimentoFinal);
        SpringUtilities.makeCompactGrid(datos, 4, 2, 0, 60, 30, 5);
    }

    @Override
    public void movementPerformed() {

        String dato = Integer.toString(getModel().getAlimentoInicial()*relacion*relacion);
        tfAlimentoInicial.setText(dato);

        dato = Integer.toString(getModel().getAlimentoFinal()*relacion*relacion);
        tfAlimentoFinal.setText(dato);

        dato = Integer.toString(getModel().getAlimentoMax()*relacion*relacion);
        tfAlimentoMax.setText(dato);

        dato = Integer.toString(getModel().getDiaAlimentoMax()/ relacion);
        tfDiaAlimentoMax.setText(dato);

    }

    /**
     * @return the m
     */
    public ModeloGrafica getModel() {
        return m;
    }

    /**
     * @param m the m to set
     */
    public void setModel(ModeloGrafica m) {
        this.m = m;
    }
}
